The present claimed invention relates to a configurable code generator. It is useful in the field of wireless communication and, in particular, in apparatus and methods for processing digital spread spectrum signals. It will be described in such context.
Wireless communication has extensive applications in consumer and business markets. Among the many communication applications/systems are: fixed wireless, unlicensed Federal Communications Commission (FCC) wireless, local area network (LAN), cordless telephony, personal base station, telemetry, mobile wireless, encryption, and other digital data processing applications. While each of these applications utilizes spread spectrum communications, they generally utilize unique and incompatible code modulation and protocols. Consequently, each application may require unique hardware, software, and methodologies for generating the codes required for encoding and for decoding a signal. This practice can be costly in terms of design, testing, manufacturing, and infrastructure resources. As a result, a need arises to overcome the limitations associated with the varied hardware, software, and methodologies of generating codes for digital signals in each of the varied spread spectrum applications.
Furthermore, within each of these applications, there is code modulation proliferation. For example, different codes can arise for different tasks, e.g., a spreading code sequence for a spreading a signal across a frequency spectrum, and a channelization code for uniquely identifying a user or a traffic channel. In another example, different codes arise based on newly structured communication protocols. For example, within the cellular telephony spread spectrum systems, industry protocols are constantly evolving.
A code generator is a device that generates predetermined code sequences used for code modulation and demodulation prescribed by a given communication protocol. If a code generator is designed for a single spread spectrum application, or for a specific protocol or standard within the application, then it is typically not usable for a different application. Furthermore, it may not even be usable with a new or refined protocol or standard within a given application. Thus, if a code generator is implemented in application-specific hardware, then the cost to update the hardware can be significant. Consequently, a need arises for overcoming the limitations of protocol non-uniformity and proliferation of code sequences in the wireless communications field.
Furthermore, the pace at which improvements and new standards arise in the wireless communication industry, new and different code standards are inevitable. If a code generator is built to satisfy only conventional code sequences and combinations, it may not be of a satisfactory capacity or configuration to accommodate a new code standard. Furthermore, while new standards are anticipated, they are not necessarily defined. As a result, a need arises for a code generator that can overcome the limitations of a conventional code generator in order to accommodate new and undefined code standards.
Another variable in the operation of a code generator is the speed of the code generator. That is, a code generator depends upon a fixed system clock. The code generator also depends on other components, such as memory access that is also tied to a given cycle time. However, because each of these components may have limitations, the speed of the code generator cannot be changed. Thus it may not be possible to increase the speed of a code generator without a costly hardware design. But a new communication protocol may require a code generation speed that is different from previous code generation speeds. Consequently, a need exists to overcome the limitation of generating code only at one speed.
A conventional code generator can load an initial state into a code generator, e.g., a linear feedback shift register (LFSR), then iteratively generate sequential values of the code sequence. If a code generator has hardware limited to producing only a short sequence length, then it may be unable to generate a longer code sequences. This is because a longer code sequence generally requires a longer LFSR. Alternatively, if an LFSR has hardware for generating a long sequence when the system only needs a short sequence, then a time penalty may be incurred. That is, after the code generator has finished generating the desired short code, the system may have to wait for the code generator to cycle through the balance of the undesired long code sequence to reach the starting point for the short sequence. Resultantly, a need arises for a code generator to overcome the limitation of sequentially indexing through the entirety of the code sequence.
The present invention provides a method and apparatus that overcomes the limitations of protocol non-uniformity and proliferation of code sequences in the wireless communications field. In particular, the present invention overcomes the limitations of a conventional code generator in order to accommodate new and undefined code standards. And the present invention overcomes the limitation of generating code only at one speed. Lastly, the present invention overcomes the limitation of sequentially indexing through the entirety of a code sequence to reach a starting point of the sequence.
A first embodiment of the present invention provides a configurable code generator system (CGS) that can be used for any one of a wide variety of spread spectrum applications. The CGS includes a composite code generator, a global code generator, and an interface that is coupled to the composite code generator and the global code generator. The composite code generator has multiple independent code generators, each capable of generating an independent code sequence. The global code generator provides a global code sequence for synchronization. The interface has memory that stores at least one bit of the global sequence and at least one bit from at least one of the independent code sequences of the composite code generator. Multiple subsequent circuits can selectively choose one or more of the code sequences from the interface simultaneously and in parallel, as dictated by a desired communication protocol.
A second embodiment of the present invention provides a code generator having a master linear feedback shift register (LFSR) and multiple slave circuits. The multiple slave circuits are coupled in parallel to the LFSR. The LFSR itself has multiple memory registers and at least one adder coupled to the multiple memory registers for providing feedback. And each of the plurality of slave circuits has a mask circuit for receiving a unique mask word. The unique mask word corresponds to a unique offset in code space from the master linear feedback shift register. As a result, each of the multiple slave circuits provides a code sequence output in parallel. The code generator also includes a selective coupler that is coupled to the output from each of the plurality of slave circuits and coupled to a final output line. The selective interconnect allows a single desired code sequence to be provided from the code generator.
These and other objects and advantages of the present invention will become apparent to those of ordinary skill in the art after having read the following detailed description of the preferred embodiments, which are also illustrated in the various drawing figures.